"""
主入口脚本，仅负责流程调度、进度条展示、时间统计。
"""
import time
from tqdm import tqdm
from src.aux_utils import run_try_workflow


def main():
    print("=" * 40)
    start_time_str = time.strftime('%Y-%m-%d %H:%M:%S')
    start_time = time.time()
    print(f"⏱ 程序开始运行 {start_time_str}")
    print("=" * 40)
    # 显示一个整体阶段的占位进度条（不改动内部工作流），
    # 将主工作流放在 'model' 阶段执行，这样终端会显示总体进度状态。
    stages = ["setup", "preprocess", "model", "diagnostics", "finish"]
    with tqdm(total=len(stages), colour='yellow') as pbar:
        for stage in stages:
            pbar.set_description(stage)
            if stage == "model":
                # 在 model 阶段执行完整工作流（可能较慢）
                run_try_workflow()
                pbar.update(1)
            else:
                # 快速占位以显示阶段推进
                time.sleep(0.05)
                pbar.update(1)
    end_time_str = time.strftime('%Y-%m-%d %H:%M:%S')
    end_time = time.time()
    print("=" * 40)
    print(f"⌛️ 程序运行结束 {end_time_str}")
    duration = end_time - start_time
    print(f"总耗时：{int(duration)} 秒（{duration/60:.2f} 分钟）")
    print("=" * 40)


if __name__ == "__main__":
    main()
